package com.kun.framework.image.enums;

import cn.hutool.core.text.StrPool;
import cn.hutool.core.util.StrUtil;

/**
 * 图片类型枚举类
 *
 * @author gzc
 * @since 2024/7/31
 */
@SuppressWarnings("ALL")
public enum ImageTypeEnum {
    PNG,
    JPG,
    JPEG,
    GIF,
    BMP,
    PSD,
    WEBP;

    /**
     * 判断是否是图片类型
     *
     * @param fileType 图片类型名称
     */
    public static boolean isImg(String fileType) {
        if (StrUtil.isBlank(fileType)) {
            return false;
        }
        for (ImageTypeEnum value : ImageTypeEnum.values()) {
            if (value.name().equalsIgnoreCase(fileType)) {
                return true;
            }
        }
        return false;
    }

    public static boolean isImgByFileNameAndType(String fileNameAndType) {
        return isImg(fileNameAndType.substring(fileNameAndType.lastIndexOf(StrPool.DOT) + 1));
    }

    /**
     * 匹配
     *
     * @param fileType 图片文件格式名称
     * @return 图片文件格式名称
     */
    public static String contain(String fileType) {
        if (StrUtil.isNotBlank(fileType)) {
            for (ImageTypeEnum value : ImageTypeEnum.values()) {
                if (value.name().equalsIgnoreCase(fileType)) {
                    return value.name().toLowerCase();
                }
            }
        }
        return "";
    }

    @Override
    public String toString() {
        return this.name();
    }

    public String toLowerCase() {
        return this.name().toLowerCase();
    }
}
